package com.jg.framework.utils.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 业务日志配置文件
 * 提供属性获取、修改、删除等方法
 * @author ZhaoJian
 *
 */
public class BizLogConfig {

	java.util.Properties props = new java.util.Properties();
	private static BizLogConfig instance = null;
	private static Logger log = LoggerFactory.getLogger(BizLogConfig.class);

	public static synchronized BizLogConfig getInstance() {
		if (instance == null) {
			instance = new BizLogConfig();
			instance.init();
		}
		return instance;
	}

	private void init() {
		// 先装载appconfig.properties文件
		try {
			props.load(BizLogConfig.class
					.getResourceAsStream("/resources/config/log-yxjcObj.properties"));
		} catch (Exception e) {
			log.error("装载系统配置文件【log-yxjcObj.properties】失败", e);
		}
	}

	/**
	 * 通过key获取属性值
	 * @param key
	 * @return
	 */
	public String getValue(String key) {
		return props.getProperty(key);
	}
	
	/**
	 * 业务日志专用，通过类class和属性名获取属性值
	 * @param key
	 * @return
	 */
	public String getValue(Class<?> clazz, String classField) {
		String key = clazz.getSimpleName() + "." + classField;
		return props.getProperty(key);
	}

	/**
	 * 通过key获取属性值，没有返回默认值
	 * @param key
	 * @param defaultValue 默认值
	 * @return
	 */
	public String getValue(String key, String defaultValue) {
		return props.getProperty(key, defaultValue);
	}

	/**
	 * 通过key，删除配置文件中的属性
	 * @param key
	 */
	public void removeProperty(String key) {
		props.remove(key);
	}

	/**
	 * 通过key，修改配置文件中的属性值
	 * @param key
	 * @param value
	 */
	public void updatePropertyValue(String key, String value) {
		props.setProperty(key, value);
	}
}
